import axios from 'axios';

// 创建一个axios实例
const service = axios.create({
  // baseURL: xxx
  // 请求超时时间
  timeout: 3000
});

// 添加请求拦截器
service.interceptors.request.use(
  config => {
    return config;
  },
  err => {
    console.log(err);
  }
);

//响应拦截
service.interceptors.response.use(
  response => {
    let res = {};
    res.status = response.status;
    res.data = response.data;
    return res;
  },
  err => console.log(err)
);

// export default service;
/**
 * 使用es6的export default导出了一个函数，导出的函数代替axios去帮我们请求数据，
 * 函数的参数及返回值如下：
 * @param {String} method  请求的方法：get、post、delete、put
 * @param {String} url     请求的url:
 * @param {Object} data    请求的参数
 * @returns {Promise}     返回一个promise对象，其实就相当于axios请求数据的返回值
 */
export default function(method, url, data = null) {
  method = method.toLowerCase();
  if (method == 'post') {
    return service.post(url, data);
  } else if (method == 'get') {
    return service.get(url, { params: data });
  } else if (method == 'delete') {
    return service.delete(url, { params: data });
  } else if (method == 'put') {
    return service.put(url, data);
  } else {
    console.error('未知的method' + method);
    return false;
  }
}
